#ifndef LOMBSCARGLE_CALCULATOR_H
#define LOMBSCARGLE_CALCULATOR_H

#include <QObject>
#include <QVector>
#include <Eigen/Dense>

class LombScargleCalculator : public QObject
{
    Q_OBJECT

public:
    explicit LombScargleCalculator(QObject *parent = nullptr);
    // 计算 Lomb-Scargle 周期图
    QPair<QVector<double>, QVector<double> > Lombcalculate(const Eigen::VectorXd &t, const Eigen::VectorXd &y, int nfft, double maxF);
private:
    // Lomb-Scargle 算法实现
    QVector<double> calculate(const Eigen::VectorXd &t, const Eigen::VectorXd &y, const Eigen::VectorXd &f);
};

#endif // LOMBSCARGLE_CALCULATOR_H
